package com.example.demo.services;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.port.fee.entity.Customer;

/**
 * 客户服务接口
 */
public interface CustomerService extends IService<Customer> {
    
    /**
     * 根据ID获取客户信息
     * @param customerId 客户ID
     * @return 客户信息
     */
    Customer getCustomerById(Long customerId);
    
    /**
     * 添加一个默认客户（用于测试）
     * @return 客户ID
     */
    Long addDefaultCustomer();
    
    /**
     * 分页查询客户列表
     * @param customer 查询条件
     * @param pageNum 页码
     * @param pageSize 每页记录数
     * @return 分页结果
     */
    Page<Customer> listCustomers(Customer customer, int pageNum, int pageSize);
    
    /**
     * 新增客户
     * @param customer 客户信息
     * @return 成功返回true，失败返回false
     */
    boolean addCustomer(Customer customer);
    
    /**
     * 修改客户
     * @param customer 客户信息
     * @return 成功返回true，失败返回false
     */
    boolean updateCustomer(Customer customer);
    
    /**
     * 删除客户
     * @param customerId 客户ID
     * @return 成功返回true，失败返回false
     */
    boolean deleteCustomer(Long customerId);
    
    /**
     * 检查客户编号是否已存在
     * @param customerCode 客户编号
     * @param excludeId 排除的客户ID（修改时使用）
     * @return 存在返回true，不存在返回false
     */
    boolean checkCustomerCodeExists(String customerCode, Long excludeId);
} 